﻿Imports System.IO

Public Class FileHandler

    Dim SaveFileDialog = New System.Windows.Forms.SaveFileDialog
    Dim OpenFileDialog = New System.Windows.Forms.OpenFileDialog

    Private Function initialDirectory(ByVal os As String, ByVal gebruiker As String, ByVal sysdir As String) As String
        'Hulpfunctie vooer CSV.readFile() --> Open een fileDialog om de .txt of .csv te openen

        Dim initDir As String = ""
        ' Directory dat standaard wordt weergegeven bij het openen van een bestand
        If (os.IndexOf("NT 6") <> -1) Then      ' Vista check
            sysdir = sysdir.Substring(0, 3)
            initDir = sysdir & "Users\" & gebruiker & "\" & "Documenten"
        ElseIf (os.IndexOf("NT 5") <> -1) Then  ' XP check
            sysdir = sysdir.Substring(0, 3)
            initDir = sysdir & "Documents and Settings\" & gebruiker & "\" & "Mijn documenten"
        End If
        Return initDir

    End Function


    Public Function readFile(Optional ByVal location As String = "")
        Dim locatie As String = location
        Dim inhoud As String = ""

        If locatie = "" Then
            'Open een fileDialog om de .txt of .csv te openen
            OpenFileDialog.Title = "Open tekst- of csv-bestand"
            OpenFileDialog.Filter = "Tekst Bestand|*.txt|CSV Bestand|*.csv"
            OpenFileDialog.InitialDirectory = initialDirectory(Environment.OSVersion.ToString, Environment.UserName.ToString, Environment.SystemDirectory.ToString)
            OpenFileDialog.ShowDialog()

            locatie = OpenFileDialog.FileName
            'Else
            '    Try
            '        Dim wc As New System.Net.WebClient
            '        Dim URL As String = wc.DownloadString(locatie)
            '        inhoud = URL
            '    Catch ex As Exception
            '        MessageBox.Show("Kan het bestand niet openen." + vbNewLine + "Controlleer uw internet verbinding.")
            '    End Try

        End If



        ' Lees het tekst bestand uit, en geef het weer in een textbox
        ' Neem een StreamReader classe om het tekstbestand uit te lezen
        Dim objStreamReader As StreamReader
        Try
            If inhoud = "" Then
                objStreamReader = File.OpenText(locatie)
                inhoud = objStreamReader.ReadToEnd()
                objStreamReader.Close()
            End If

            If inhoud.IndexOf("AA01 gp-Untis") <> -1 Then

                Form1.tbCSV.Enabled = True
                ''mnuItemBestandSluiten.Enabled = True
                ''btnMaakXML.Enabled = True
            Else
                ''closeFile()
                MessageBox.Show("U dient een UNTIS csv-bestand te openen!", "Ongeldige CSV-bestand", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return ""
            End If

            Return inhoud
        Catch ex As Exception
            MessageBox.Show("U dient een UNTIS csv-bestand te openen!")
        End Try

        Return ""



    End Function



    Public Function readXMLFile()
        Dim locatie As String
        Dim inhoud As String = ""


        'Open een fileDialog om de .txt of .csv te openen
        OpenFileDialog.Title = "Open tekst- of XML-bestand"
        OpenFileDialog.Filter = "Tekst Bestand|*.txt|XML Bestand|*.xml"
        OpenFileDialog.InitialDirectory = initialDirectory(Environment.OSVersion.ToString, Environment.UserName.ToString, Environment.SystemDirectory.ToString)
        OpenFileDialog.ShowDialog()

        locatie = OpenFileDialog.FileName




        ' Lees het tekst bestand uit, en geef het weer in een textbox
        ' Neem een StreamReader classe om het tekstbestand uit te lezen
        Dim objStreamReader As StreamReader
        Try
            If inhoud = "" Then
                objStreamReader = File.OpenText(locatie)
                inhoud = objStreamReader.ReadToEnd()
                objStreamReader.Close()
            End If

            If inhoud.IndexOf("<?xml") <> -1 Then

                Form1.tbCSV.Enabled = True
            Else
                ''closeFile()
                MessageBox.Show("U dient een XML-bestand te openen!", "Ongeldige CSV-bestand", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return ""
            End If

            Return inhoud
        Catch ex As Exception
            MessageBox.Show("U dient een XML-bestand te openen!")
        End Try

        Return ""



    End Function


    Public Sub saveFile(ByVal writeText As String, Optional ByVal location As String = "")
        Dim locatie As String = location

        If location = "" Then
            'Open een fileDialog om de .txt op te slaan
            SaveFileDialog.Title = "Kies een locatie om het tekst-bestand op te slaan"
            SaveFileDialog.Filter = "Tekst Bestand|*.txt"
            SaveFileDialog.InitialDirectory = initialDirectory(Environment.OSVersion.ToString, Environment.UserName.ToString, Environment.SystemDirectory.ToString)
            SaveFileDialog.ShowDialog()
            locatie = SaveFileDialog.FileName
        End If

        Dim TargetFile As StreamWriter

        Try
            TargetFile = New StreamWriter(locatie, False)
            TargetFile.Write(writeText)
            TargetFile.Close()
        Catch
            MessageBox.Show("Error saving file " & locatie)
        End Try




    End Sub


End Class
